home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 24 / AACD 24.iso / AACD / Sound / LAME / WarpOS / src / TODO < prev    next >
Encoding:
Text File  |  2001-06-18  |  3.3 KB  |  113 lines

  1. frontend: a bunch of static variables (input_format, swapbytes,
  2.           silent, brhist, update_inteval) are set in parse_args and used in
  3.           get_audio.  should be cleaned up.
  4.  
  5.  
  6.  
  7.  
  8. NOGAP encoding:
  9.  
  10. -nogap:  more testing, fix options, test id3 tags?
  11. Can we change id3 tags without reseting the encoder??
  12. At the end of encoding 1.wav, call lame_get_mf_samples_to_encode()
  13. to find the number of non encoded buffered PCM samples.  Then
  14. encode samples from 2.wav until these PCM samples have been
  15. encoded, *THEN* call lame_encode_flush_nogap() and close
  16. out file 1.mp3.
  17.  
  18.  
  19. NOGAP decoding:  
  20. lame --decode --nogap file1.mp3 file2.mp3 file3.mp3
  21. should also work.  What needs to be done:
  22. get_audio.c:  We need a way to open a second mp3 file, without
  23.               calling lame_decode_init() and reinitializing mpglib.
  24.               And the mpglib needs to know to look for new Xing
  25.               tags at the beginning of file2.mp3 and file3.mp3.
  26.  
  27.  
  28.  
  29. 1.
  30. Does stdin work when LAME is compiled to use libsndfile? 
  31. (new version of libsndfile will support this - try this out)
  32.  
  33.  
  34. 2. 
  35. LAME has problems with pure DC input.  i.e. a square wave with
  36. a frequency well below 20 Hz.  Not very important, but it should
  37. be fixed.
  38.  
  39.  
  40. 3. 
  41. modify mpglib to output
  42. floating point and have finaly quantization step a
  43. easy-to-change module so it can output other than 16bit.
  44. (replace mpglib with MAD?  MAD has agreed to write a call back
  45. which will return all data needed by the frame analyzer)
  46.  
  47. 3.1  mgplib has bugs with i-stereo.  flag denoting invalid
  48. i-stereo value (= frame is m/s stereo) is not correct.  
  49.  
  50. 4.
  51. Clipping detection.  Compute statistics for input near 2^15, 
  52. (should be done in fill_buffer() in util.c).  Have command
  53. line encoder print statistics about % of samples which might
  54. end up clipped.
  55.  
  56. Better: do a full decode - but this seems too expensive. 
  57.  
  58.  
  59. 5.
  60. lowpass filter: for M/S stereo, use more filtering for the side
  61. channel, less filtering for mid channel.  We need to first replace
  62. the polyphase filter with an FIR lowpass filter with finer frequency
  63. resolution before implementing this. 
  64.  
  65. 6. 
  66. LAME has a 31 point FIR filter used for resampling, which
  67. can also be used as a lowpass.  When resampling is done, 
  68. use that filter to also lowpass instead of the polyphase filter.
  69.  
  70. 7.
  71. Even when resampling is not needed, should we use an FIR filter
  72. for the lowpass?  If it is not too much slower, yes.  If it
  73. is slower, then it should be an option since it will produce
  74. higher quality.  
  75.  
  76. 8.
  77. We should consider moving the experts options from the *long
  78. help* text into an *experts only* help text. The average Joe gets
  79. knocked down by the huge number of possibilities to setup lame.
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. 997..
  87. ACM wrapper for LAME.  Note: ACM is obsolete and was replaced
  88. with DirectShow and/or a "DMO".  We do have a beta directshow filter.
  89.  
  90. Contact "Florian Bruckner" <h9651030@miraculix.wu-wien.ac.at> for info - 
  91. he is working on the VorbisACM.
  92.  
  93.  
  94.  
  95. 998.
  96. Merge GOGO's fast assembler routines.
  97.  
  98.  
  99.  
  100.  
  101. 999.
  102. It would be nice to save some information whilst encoding
  103. a: wave -> mp3
  104.     a RIFF/wave can contain LIST chunks with information
  105.     about author, title, etc. 
  106.     ==> could go into TAG fields of resulting mp3
  107. b: mp3 -> mp3
  108.     ==> we could copy the TAG directly
  109. c: mp3 <-> ogg
  110.     ==> copy TAG info into oggs info field and vice versa
  111. d: mp3 -> wave
  112.     ==> copy TAG into LIST chunk
  113.